package com.jic.point.model.vo.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mysql.cj.jdbc.jmx.LoadBalanceConnectionGroupManager;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@ApiModel(description = " 积分卡批量开卡申请表实体类")
public class ConfPointCardApplyRequest extends BaseEntityRequest{
	private static final long serialVersionUID = 1L;
    // @NotEmpty(message = "主键") 
    @ApiModelProperty(notes = "主键")
    private Long id;

    @ApiModelProperty(notes = "积分卡类别")
    private Long cardSort;
    
    // @NotEmpty(message = "积分卡申请编码") 
    @ApiModelProperty(notes = "积分卡申请编码")
    private String code;

    // @NotEmpty(message = "名称") 
    @ApiModelProperty(notes = "名称")
    private String name;

    // @NotEmpty(message = "积分卡类型（1、权益卡；2、海星卡；3、定制卡；4、贵宾卡；智慧整套卡）") 
    @ApiModelProperty(notes = "积分卡类型（1、权益卡；2、海星卡；3、定制卡；4、贵宾卡；5,智慧整套卡）")
    private Long type;

    // @NotEmpty(message = "采购类型(1、中心采购；2、产品线采购；3、渠道采购；4、平台采购；）") 
    @ApiModelProperty(notes = "采购类型(1、中心采购；2、产品线采购；3、渠道采购；4、平台采购；）")
    private Long purchaseType;

    @ApiModelProperty("最小过期事件")
    private Date minExpiration;

    // @NotEmpty(message = "一级需求ID") 
    @ApiModelProperty(notes = "一级需求ID")
    private String firstDemandCode;

    // @NotEmpty(message = "二级需求ID") 
    @ApiModelProperty(notes = "二级需求ID")
    private String secondDemandCode;

    // @NotEmpty(message = "有效期") 
    @ApiModelProperty(notes = "有效期")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date expiryTime;

    // @NotEmpty(message = "批次开卡数量") 
    @ApiModelProperty(notes = "批次开卡数量")
    private BigDecimal totalNum;

    @ApiModelProperty("剩余积分")
    private BigDecimal leftPoint;


    @ApiModelProperty("平台名称")
    private String platformName;

    // @NotEmpty(message = "冻结数量") 
    @ApiModelProperty(notes = "冻结数量")
    private BigDecimal frozenNum;

    // @NotEmpty(message = "剩余数量") 
    @ApiModelProperty(notes = "剩余数量")
    private BigDecimal leftNum;

    // @NotEmpty(message = "积分卡面值") 
    @ApiModelProperty(notes = "积分卡面值")
    private BigDecimal pointCardLimit;

    // @NotEmpty(message = "总积分") 
    @ApiModelProperty(notes = "总积分")
    private BigDecimal totalPoint;

    // @NotEmpty(message = "是否接口校验卡片(1、是；2、否)") 
    @ApiModelProperty(notes = "是否接口校验卡片(1、是；2、否)")
    private Integer isInterfaceVarify;

    // @NotEmpty(message = "图片1") 
    @ApiModelProperty(notes = "图片1")
    private String img1;

    // @NotEmpty(message = "图片2") 
    @ApiModelProperty(notes = "图片2")
    private String img2;

    // @NotEmpty(message = "图片3") 
    @ApiModelProperty(notes = "图片3")
    private String img3;

    // @NotEmpty(message = "申请原因") 
    @ApiModelProperty(notes = "申请原因")
    private String applyReason;

    // @NotEmpty(message = "审批人ID") 
    @ApiModelProperty(notes = "审批人ID")
    private Long auditorId;
    @ApiModelProperty(notes = "审批时间")
    private Date auditTime;
    @ApiModelProperty(notes = "审核状态")
    private Long auditSts;
    @ApiModelProperty(notes = "审核原因")
    private String auditReason;
    // @NotEmpty(message = "是否删除：0、待审核， 1、正常；3、作废 ") 
    @ApiModelProperty(notes = "是否删除：0、待审核， 1、正常；3、作废 ")
    private Long sts;
    @ApiModelProperty(notes = "一审人id")
    private Long auditorOneId;

    @ApiModelProperty(notes = "一审原因")
    private String auditOneReason;

    @ApiModelProperty(notes = "一审时间")
    private Date auditOneTime;

    @ApiModelProperty(notes = "一审状态 0未通过 1通过")
    private Long auditOneSts;


    @ApiModelProperty("生成的积分卡系列")
    private List<QuantityRequest> quantity;

    private List<ConfPointCardApplyRequest> list;

    @ApiModelProperty(notes = "时间单位")
    private String timeUnit;

    @ApiModelProperty(notes = "过期时间")
    private List<Date> expiration;

    @ApiModelProperty(notes = "延期时长")
    private Integer time;

}
